/*
 * 验证输入框输入数据格式验证，后续可以往里面增加。
 * 主要用于单击查询按钮的事件
 * 
 */
(function($){
	
//	var validApplyNo = fucntion(obj){console.log();	return false;};
//	var classMethod = {"validApplyNo":validApplyNo,}
	var warnMessage = {"申请批次号：":"请按照10_0_000001的格式输入【申请批次号】！",
					   "起止日期":"起始日期不能大于截止日期！",
					   "任务名称：":"请按照10_0_000001的格式输入【任务名称】！",
					   "代理人姓名：":"【代理人姓名】:请输入中文名且长度不超过6!",
					   "姓名：":"【姓名】:请输入中文名且长度不超过6!",
					   "持卡人姓名：":"【持卡人姓名】:请输入中文名且长度不超过6!",
					   "负责人姓名：":"【负责人姓名】:请输入中文名且长度不超过6!",
					   "联系人姓名：":"【联系人姓名】:请输入中文名且长度不超过6!",
					   "银行名称：":"【银行名称】:请输入中文！",
					   "所在社区：":"【所在社区】:请输入中文！",
					   "主管部门：":"【主管部门】:请输入中文！",
					   "银行名称：":"【银行名称】:请输入中文！",
					   "银行网点名称：":"【银行网点名称】:请输入中文！",
					   "上级网点/机构：":"【上级网点/机构】:请输入中文！",
					   "所属地区：":"【所属地区】:请输入中文！",
					   "网点管理员：":"【网点管理员】:请输入中文！",
					   "地址：":"【地址】:请输入中文！",
					   "代理人手机号码：":"【代理人手机号码】:请输入正确的手机号码！",
					   "代理人证件号码：":"【代理人证件号码】:请输入正确的证件号码！",
					   "负责人证件号码：":"【负责人证件号码】:请输入正确的证件号码！",
					   "市民卡号：":"【市民卡号】:请输入长度为12的数字！",
					   "制卡任务编号：":"【制卡任务编号】:请输入长度为14的数字！",
					   "任务编号：":"【任务编号】:请输入长度为14的数字！",
					   "联系电话(手机)：":"【联系电话(手机)】:请输入正确的手机号码！",
					   "E-MAIL：":"【E-MAIL】:请输入正确的邮箱地址！",
					   "电子邮箱：":"【E-MAIL】:请输入正确的邮箱地址！",
					   "登陆IP限制：":"【登陆IP限制】:请输入正确的IP地址！",
					   "密码：":"【密码】:请输入六位数字！",
					   "确认密码：":"【确认密码】:请输入六位数字！",
					   "柜员性别：":"【柜员性别】:性别不能为空！",
					   "传真：":"【传真】:请输入正确的传真号码！",
					   "固定电话：":"【固定电话】:请输入正确的电话号码！",
					   "邮政编码：":"【邮政编码】:请输入正确的邮政编码！",
					   "挂失凭证号：":"【挂失凭证号】:请输入PZ+12位数字的凭证号！",
					   "领卡凭证号：":"【领卡凭证号】:请输入PZ+12位数字的凭证号！",
					   "领卡凭证号：":"【领卡凭证号】:请输入PZ+12位数字的凭证号！",
					   "银行账户名：":"【银行账户名】:请输入中文名且长度不超过6!",
					   "银行账号：":"【银行账号】:请输入正确的银行账号！",
					   "制卡数量：":"【制卡数量】:请输入数字，且最多五位数！",
					   "交易名称：":"【交易名称】:请用中文描述，不超过10个字符！",
					   "卡产品名称：":"【卡产品名称】:请用中文描述，不超过10个字符！",
					   "收费金额：":"【收费金额】:请输入数字,最多两位小数！",
					   "员工编号：":"【员工编号】：请输入6位数字的编号！"} //
//	var validMethod = {"validApplyNo":validApplyNo()};
	
	//check申请批次号
	function validApplyNo(validInputValue){
		var regu = /^[0-9]{2}\_[0-9]\_[0-9]{6}$/;
	//	var re = new RegExp(regu);
		
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
	}
	
	//check起止日期
	function validDateFromTo(validInputValue){
		var dateFromTo = validInputValue.split("#");
		var dateFrom = dateFromTo[0];
		var dateTo = dateFromTo[1];
		var dateFrom_Date = new Date(dateFrom.replace(/-/g,"/"));
		var dateTo_Date = new Date(dateTo.replace(/-/g,"/"));
		if(dateFrom_Date>dateTo_Date){
			return false;
		}else{
			return true;
		}
	}
	
	
	//check办理人名字
	function validName(validInputValue){
		var regu = /^[\u4E00-\u9FA5]{1,6}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
	}
	
	//check名称定义
	function validDefinitionName(validInputValue){
		var regu = /^[\u4E00-\u9FA5]{1,10}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
	}
	
	//check手机号码
	function validMobile(validInputValue){
		var regu = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
	}
	
	//check市民卡号码:长度位12的数字
	function validCitizenCardNo(validInputValue){
		var regu = /^[1-9]{1}[0-9]{11}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
    }
	
	//check制卡任务编号：长度为14的数字
	function validTaskNo(validInputValue){
		var regu = /^[0-9]{14}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}	
	}
	
	//check邮箱地址:
	function validEmail(validInputValue){
		var regu = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	//checkIP地址:
	function validIP(validInputValue){
		var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;    
	    if (reSpaceCheck.test(validInputValue)){    
	    	validInputValue.match(reSpaceCheck);    
	        if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >=0    
	          &&RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4>=0){    
	            return true;     
	        }else{    
	            return false;    
	        }    
	    }else{    
	        return false;    
	    }    
	}
	
	//check 密码级别1：六位数字
	function validPwdLevOne(validInputValue){
		var regu = /^[0-9]{6}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	//check 固定电话传真
	function validTelePhone(validInputValue){
		var regu = /^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,4})?$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	//check 邮政编码
	function validPostCode(validInputValue){
		var regu = /^[0-8][0-7]\d{4}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	////check 凭证号
	function validCertNo(validInputValue){
		var validInputValue = validInputValue.replace("PZ","");
		var regu = /^[0-9]{12}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	//check 银行卡号
	function validBankNo(validInputValue){
		var regu = /^([1-9]{1})(\d{15}|\d{18})$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
		
	/*function validOtherName(validInputValue){
		var regu = /^[\u4E00-\u9FA5]{2,30}[a-zA-Z0-9]{1,10}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}*/
	
	//check 卡申请数量
	function validCardQuantity(validInputValue){
		var regu = /^[1-9]{1}[0-9]{0,4}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	function validCharge(validInputValue){
		var regu = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	function validUserNo(validInputValue){
		var regu = /^[1-9]{1}[0-9]{5}$/;
		if(!regu.test(validInputValue)){
			return false;
		}else{
			return true;
		}
	}
	
	function validMethod(validClass,validInputName,validInputValue,$obj){
		var flag = true;
	//	console.log("inputValue==>"+validInputValue);
	//	console.log("inputClass==>"+validClass);
		var message = warnMessage[validInputName];
		if(validClass=="validRadioIsChecked"){
			var name = $("input:radio[class='validRadioIsChecked']").attr("name");
			var radioIsChecked = $("input:radio[name='"+name+"']:checked").val();
			if(!radioIsChecked){
				alertMsg.warn(message);
				flag = false;
			}
		}
		if(!validInputValue){
			if(validClass=="validRequired"){
				var inputName = validInputName.replace(/：/g,"");
				message = "【"+inputName+"】"+"不能为空！";
				alertMsg.warn(message);
				flag = false;
			}
		}
		
		if(validInputValue){
			if(validClass=="validApplyNo"){
				if(!validApplyNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validDate"){
				if(!validDateFromTo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validName"){
				if(!validName(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validMobile"){
				if(!validMobile(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validIdentity"){
				var paperCode = $("select[flag='paperCode']",$obj).val();

				if(!paperCode){
					message="请选择对应的证件类型!";
					alertMsg.warn(message);
					flag = false;
				}else{
					if(!checkCard(validInputValue,paperCode)){
						flag = false;
					}
				}
				
			}
			if(validClass=="validCitizenCardNo"){
				if(!validCitizenCardNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validTaskNo"){
				if(!validTaskNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validEmail"){
				if(!validEmail(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validIP"){
				if(!validIP(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validPwdLevOne"){
				if(!validPwdLevOne(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validTelePhone"){
				if(!validTelePhone(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validPostCode"){
				if(!validPostCode(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validCertNo"){
				if(!validCertNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validBankNo"){
				if(!validBankNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validCardQuantity"){
				if(!validCardQuantity(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			
			if(validClass=="validDefinitionName"){
				if(!validDefinitionName(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			
			if(validClass=="validCharge"){
				if(!validCharge(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
			if(validClass=="validUserNo"){
				if(!validUserNo(validInputValue)){
					alertMsg.warn(message);
					flag = false;
				}
			}
		}
		
		
	//	console.log("flag===>"+flag);
		return flag;
	}
	
	
	$.fn.checkInputValueBySearch = function(){
		this.click(function(){
			var $obj;
			$(".page.unitBox").each(function(index,item){
	//			console.log("display==>"+$(item).css("display"));
				if($(item).css("display")=="block"){
					$obj = $(item);	
				}
			});
			var elements = $(".searchBar input,select",$obj);
	//		console.log("elements.size==>"+elements.size());
			//封装了用于验证格式的class值数组,属性值都是以valid开头的
			
			
			var validObj = new Object();
			//验证标记
			var flag = true;
			//日期起止数组
			var dateFromTo = "";
			var dateFromFlag = false;
			var dateToFlag = false;
			//日期标签判断是否一致
			var dateLabelValue = "";
			var dateLabelFlag = false;
			for(var i=0;i<elements.size();i++){
				var validCalssValue = [];
				
				
				//验证的class
				var inputClass = $(elements[i]).attr("class");
				//验证的输入框标签名
				var inputLabel;
				var inputParent = $(elements[i]).parent();//.find("label").html();
		//		console.log("inputLabel==>"+inputLabel.prop("tagName"));
				if(inputParent.prop("tagName")=="TD"){
					inputLabel =  inputParent.parent().find("label").html();
				}
				if(inputParent.prop("tagName")=="P"){
					inputLabel = inputParent.find("label").html();
				}
				//验证的输入框值
				var validInput = $(elements[i]).val();
		//		console.log(inputLabel+"==>"+inputClass+"==>"+validInput);
				//如果有值就验证，开始分解class属性值，找到对应的valid属性值
				if(inputClass){
		//			console.log("validInput==>"+validInput);
					var classValueArray = inputClass.split(" ");
					//遍历class属性值,如果有valid字样，就开始验证
					$.each(classValueArray,function(index,item){
						if(item.indexOf("valid")!=-1){
							if(item=="validDateFrom"){
								//记录这个日期的标签
								var dateLabel = inputLabel.replace("(起)：","");
								dateLabelValue = dateLabel;
								dateFromFlag = true;
								dateFromTo = validInput;
								
							}
							if(item=="validDateTo"){
								//记录这个日期的标签
								var dateLabel = inputLabel.replace("(止)：","");
								if(dateLabelValue==dateLabel){
									dateLabelFlag = true;
								}
								dateToFlag = true;
								dateFromTo = dateFromTo+"#"+validInput;
							}
					//		console.log("dateFromFlag==>"+dateFromFlag);
					//		console.log("dateToFlag==>"+dateToFlag);
					//		console.log("dateLabelFlag==>"+dateLabelFlag);
							
							
							if(dateFromFlag && dateToFlag && dateLabelFlag){
								dateToFlag = false;
								dateFromFlag = false;
								flag = validMethod("validDate","起止日期",dateFromTo);
							}	
							
							if(!dateLabelFlag||flag){
						//		console.log("==判断日期以外==");
								flag = validMethod(item,inputLabel,validInput,$obj);
								dateLabelFlag = false;
							//	console.log("flag_dateEx==>"+flag);
							}
						}
						
						return flag;
					});	
				}
				if(!flag){
					break;
				}
			
			
		}
			
			return flag;
			
	});
	}
	
	$.fn.checkInputValueBySubmit = function(){
		this.click(function(){
			var $obj;
			var dateFromFlag = false;
			var dateToFlag = false;
			var dateLabelFlag = false;
			var dateLabelValue = "";
			var dateFromTo = "";
			$obj = $(this).parent();
			while(true){
				var flag = true;
				if($obj){
					var classValue = $obj.attr("class");
					if(classValue){
						var classArray = classValue.split(" ");
				//		console.log("classArray==>"+classValue+"==classArray.size==>"+classArray.length);
						$.each(classArray,function(index,item){
				//			console.log("class==>"+item);
							if(item=="pageContent"){
								flag = false;
								return false;
							}
						});
					}
					
					if(!flag){
						break;
					}else{
						$obj = $obj.parent();
					}
				}
			}
			/*$(".page.unitBox").each(function(index,item){
				console.log("display==>"+$(item).css("display"));
				if($(item).css("display")=="block"){
					$obj = $(item);
					
				}
			});*/
			var elements = $(".pageFormContent input,select",$obj);
	//		console.log("elements.size==>"+elements.size());
			//封装了用于验证格式的class值数组,属性值都是以valid开头的
			
			
			//验证标记
			var flag = true;
			for(var i=0;i<elements.size();i++){
				
				//验证的class
				var inputClass = $(elements[i]).attr("class");
				//验证的输入框标签名
				var inputLabel = $(elements[i]).parent().find("label").html();
				//验证的输入框值
				var validInput = $(elements[i]).val();
		//		console.log(inputLabel+"==>"+inputClass+"==>"+validInput);
				//如果有值就验证，开始分解class属性值，找到对应的valid属性值
				if(inputClass){
	//				console.log("validInput==>"+validInput);
					var classValueArray = inputClass.split(" ");
					//遍历class属性值,如果有valid字样，就开始验证
					$.each(classValueArray,function(index,item){
						if(item.indexOf("valid")!=-1){
								if(item=="validDateFrom"){
									//记录这个日期的标签
									var dateLabel = inputLabel.replace("(起)：","");
									dateLabelValue = dateLabel;
									dateFromFlag = true;
									dateFromTo = validInput;
									
								}
								if(item=="validDateTo"){
									//记录这个日期的标签
									var dateLabel = inputLabel.replace("(止)：","");
									if(dateLabelValue==dateLabel){
										dateLabelFlag = true;
									}
									dateToFlag = true;
									dateFromTo = dateFromTo+"#"+validInput;
								}
						//		console.log("dateFromFlag==>"+dateFromFlag);
						//		console.log("dateToFlag==>"+dateToFlag);
						//		console.log("dateLabelFlag==>"+dateLabelFlag);
								
								
								if(dateFromFlag && dateToFlag && dateLabelFlag){
									dateToFlag = false;
									dateFromFlag = false;
									flag = validMethod("validDate","起止日期",dateFromTo);
								}	
								
								if(!dateLabelFlag||flag){
							//		console.log("==判断日期以外==");
									flag = validMethod(item,inputLabel,validInput,$obj);
									dateLabelFlag = false;
							//		console.log("flag_dateEx==>"+flag);
								}
						}
						return flag;
					});	
				}
				if(!flag){
					break;
				}
			
			
		}
	//		console.log("flag==>"+flag);
			return flag;
			
	});
	}
})(jQuery);






